Group Predictions

Row

Win percentage for the week

Season Win Percentage

Games Correct

203

Games Picked

278

Number of predictions

90

Row

This Week’s Predictions
Game Prediction Winner Correct Correct Votes Correct Percent
1 Los Angeles Chargers Houston Texans No 17 0.1889
2 Baltimore Ravens Baltimore Ravens Yes 82 0.9111
3 Buffalo Bills Buffalo Bills Yes 84 0.9333
4 Philadelphia Eagles Philadelphia Eagles Yes 75 0.8333
5 Washington Commanders Washington Commanders Yes 58 0.6444
6 Minnesota Vikings Los Angeles Rams No 17 0.1889

Individual Predictions

row

Individual Table

Individual Results
Week 19
Name Weekly # Correct Percent Weeks Picked Season Percent Adj Season Percent Season Trend
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Week 11 Week 12 Week 13 Week 14 Week 15 Week 16 Week 17 Week 18 Week 19
Robert Martin 7 NA 9 8 8 8 7 NA 8 7 7 9 11 8 11 13 15 NA 6 1.0000 16 0.6174 0.5199
Marc Agne 14 7 9 13 6 13 10 9 12 10 10 7 16 9 13 12 13 9 5 0.8333 19 0.7086 0.7086
Jeremy Stieler 11 9 6 11 6 13 11 11 11 9 9 8 16 10 14 13 11 10 5 0.8333 19 0.6978 0.6978
Nicholas Cinco 12 8 NA NA 6 11 11 12 11 11 8 9 12 8 14 11 10 10 5 0.8333 17 0.6870 0.6147
Pablo Burgosramos 9 5 8 9 5 14 12 12 12 7 11 10 13 10 14 10 14 9 5 0.8333 19 0.6799 0.6799
Zechariah Ziebarth 8 8 8 10 5 10 10 11 11 NA 12 8 15 10 16 10 NA 9 5 0.8333 17 0.6694 0.5989
Jonathon Leslein 10 8 7 10 8 12 10 10 8 10 7 10 12 10 13 12 NA 12 5 0.8333 18 0.6641 0.6291
Kamar Morgan 12 6 8 5 8 12 9 12 10 8 10 10 16 10 NA 9 12 9 5 0.8333 18 0.6527 0.6183
Jeffrey Zornes 9 11 6 8 7 10 9 11 9 10 NA 8 15 11 11 9 13 10 5 0.8333 18 0.6515 0.6172
Bunnaro Sun 12 5 8 11 6 8 9 9 12 8 8 NA 14 NA 12 13 13 NA 5 0.8333 16 0.6483 0.5459
Christopher Mulcahy 11 9 7 8 NA 8 9 9 10 9 10 9 13 11 12 10 12 9 5 0.8333 18 0.6477 0.6136
Louie Renew 9 8 12 4 10 8 8 11 11 8 10 9 NA 10 10 13 13 9 5 0.8333 18 0.6412 0.6075
Wayne Schofield 7 5 9 5 7 7 11 11 10 8 13 10 13 11 NA 13 12 9 5 0.8333 18 0.6336 0.6003
Brittany Pillar NA NA NA NA NA 10 12 NA NA 10 11 10 16 11 13 12 13 7 4 0.6667 12 0.7633 0.4821
Nathan Brown 13 8 9 11 9 NA 10 11 14 9 10 10 14 10 12 12 NA NA 4 0.6667 16 0.7155 0.6025
Chris Papageorge 14 8 10 11 8 12 12 12 11 8 9 7 15 7 11 11 15 12 4 0.6667 19 0.7086 0.7086
Heather Kohler 12 NA 7 12 9 11 NA 12 NA 8 9 10 14 NA NA NA NA NA 4 0.6667 11 0.6968 0.4034
Erik Neumann 12 8 9 9 7 13 10 11 12 9 10 NA NA 10 15 11 NA 12 4 0.6667 16 0.6953 0.5855
Christopher Sims 11 9 10 8 7 10 12 14 11 9 8 9 16 10 11 11 13 10 4 0.6667 19 0.6942 0.6942
Jason Schattel 13 7 6 9 10 11 9 10 11 9 10 10 13 9 13 12 14 12 4 0.6667 19 0.6906 0.6906
David Dupree 13 8 10 9 7 11 11 11 12 NA 9 8 13 10 12 12 13 9 4 0.6667 18 0.6894 0.6531
Nicole Dike 13 7 8 10 7 10 10 12 10 9 10 8 15 9 13 13 15 8 4 0.6667 19 0.6871 0.6871
Kevin Kehoe 13 7 9 10 8 13 12 11 9 8 8 8 13 9 14 12 12 10 4 0.6667 19 0.6835 0.6835
Heather Ellenberger 13 8 7 8 7 12 11 11 13 9 9 10 14 9 14 11 NA 9 4 0.6667 18 0.6832 0.6472
Edward Ford 9 7 6 10 5 10 10 13 11 9 12 10 14 11 14 11 12 11 4 0.6667 19 0.6799 0.6799
Stephen Bush 9 7 4 10 9 13 13 9 10 10 8 9 16 10 13 13 13 8 4 0.6667 19 0.6763 0.6763
Kevin Buettner 12 8 8 10 7 11 10 9 10 10 10 8 16 10 13 11 NA 10 4 0.6667 18 0.6756 0.6400
Brian Hollmann NA NA NA 8 8 10 10 11 9 8 12 8 16 11 12 10 NA 7 4 0.6667 15 0.6729 0.5312
George Sweet 13 9 6 10 11 9 11 11 12 7 10 11 12 9 12 12 10 8 4 0.6667 19 0.6727 0.6727
Ramar Williams 10 8 7 11 8 11 11 10 8 8 9 8 13 10 12 14 14 11 4 0.6667 19 0.6727 0.6727
Shawn Carden 10 9 10 10 8 11 10 11 11 9 8 8 15 9 14 11 NA 8 4 0.6667 18 0.6718 0.6364
Rafael Torres 12 9 8 7 8 10 12 10 12 11 11 7 12 10 NA 11 NA 11 4 0.6667 17 0.6707 0.6001
Scott Lefton 10 8 8 7 7 11 11 10 11 10 10 8 15 10 14 11 NA NA 4 0.6667 17 0.6707 0.6001
Brayant Rivera 10 8 9 8 6 13 11 10 12 9 11 10 13 10 14 8 10 10 4 0.6667 19 0.6691 0.6691
Ryan Cvik 10 8 9 11 9 11 11 13 10 7 7 9 12 10 13 12 11 9 4 0.6667 19 0.6691 0.6691
Antonio Mitchell 11 7 8 9 9 11 10 11 10 8 8 9 13 9 13 10 13 12 4 0.6667 19 0.6655 0.6655
Earl Dixon 10 9 6 9 9 NA 11 10 9 9 10 10 15 11 10 12 NA NA 4 0.6667 16 0.6638 0.5590
David Plate 10 8 8 8 9 NA NA NA 13 10 8 9 14 NA 12 11 12 10 4 0.6667 15 0.6636 0.5239
Darvin Graham 12 7 6 9 8 11 9 NA 10 9 9 10 NA 11 14 NA 12 11 4 0.6667 16 0.6609 0.5565
Cade Martinez 10 7 8 8 6 11 11 9 10 10 9 8 15 11 13 11 14 8 4 0.6667 19 0.6583 0.6583
Karen Richardson 10 9 7 9 11 8 8 12 8 10 9 9 13 10 14 12 NA 9 4 0.6667 18 0.6565 0.6219
Paul Seitz 11 9 9 NA 8 10 11 NA NA 7 8 8 14 7 14 NA 13 8 4 0.6667 15 0.6558 0.5177
Montee Brown 10 6 8 7 8 14 11 10 8 10 10 9 14 8 13 11 11 10 4 0.6667 19 0.6547 0.6547
Jeffrey Rudderforth 11 11 10 9 6 7 10 11 12 9 8 8 14 9 11 12 NA 9 4 0.6667 18 0.6527 0.6183
Michael Branson 9 8 8 9 8 11 9 11 10 9 11 7 14 9 13 10 11 NA 4 0.6667 18 0.6527 0.6183
David Humes 10 9 8 11 5 8 12 8 12 11 11 6 14 9 9 12 13 9 4 0.6667 19 0.6511 0.6511
Daniel Major 8 10 11 6 8 11 NA 10 10 10 11 9 14 11 9 NA 8 NA 4 0.6667 16 0.6494 0.5469
Anthony Brinson 11 7 NA 9 10 11 9 12 6 NA NA 8 14 10 NA 11 11 8 4 0.6667 15 0.6468 0.5106
Brandon Parks 12 6 9 9 6 13 NA NA 12 10 10 6 NA 8 12 9 13 NA 4 0.6667 15 0.6465 0.5104
Vincent Scannelli 11 7 7 11 8 8 11 12 9 8 9 7 12 NA 11 13 12 11 4 0.6667 18 0.6453 0.6113
James Small 12 NA 9 10 8 10 9 9 10 10 NA 6 11 8 13 11 13 7 4 0.6667 17 0.6452 0.5773
Rachel Follo 15 8 6 6 9 7 10 11 9 9 10 7 13 11 11 8 13 10 4 0.6667 19 0.6367 0.6367
Terry Hardison 13 8 6 7 4 11 10 12 11 9 11 7 NA NA 11 10 13 8 4 0.6667 17 0.6225 0.5570
Megan Fitzgerald 8 11 9 10 NA NA 8 10 NA NA NA 7 13 4 12 NA NA NA 4 0.6667 11 0.6038 0.3496
Steven Webster 7 7 9 6 7 9 NA 11 NA 8 10 8 NA 8 12 12 NA NA 4 0.6667 14 0.5900 0.4347
Robert Cunningham 14 9 10 12 8 12 11 11 12 9 11 10 NA 10 13 12 14 12 3 0.5000 18 0.7366 0.6978
Aubrey Conn 13 7 10 9 8 12 12 9 13 9 10 11 16 10 12 12 15 12 3 0.5000 19 0.7302 0.7302
Michael Pacifico 13 8 7 9 9 12 12 10 14 9 11 10 14 10 12 12 14 12 3 0.5000 19 0.7230 0.7230
Chester Todd 13 8 8 8 9 13 13 10 9 9 11 9 15 10 12 13 14 NA 3 0.5000 18 0.7137 0.6761
Bradley Hobson 13 7 8 11 7 13 10 10 11 8 NA 10 16 11 14 9 14 10 3 0.5000 18 0.7008 0.6639
Randy Dick 11 7 8 8 9 14 10 10 13 11 10 9 14 10 12 12 13 10 3 0.5000 19 0.6978 0.6978
Anthony Bloss 13 8 8 11 8 13 11 11 9 7 10 9 14 9 13 12 14 9 3 0.5000 19 0.6906 0.6906
William Schouviller 12 7 9 9 11 13 10 9 NA 7 11 8 15 11 13 11 11 11 3 0.5000 18 0.6882 0.6520
Bruce Williams 13 9 10 8 9 13 12 10 NA 10 10 9 14 9 12 11 12 6 3 0.5000 18 0.6844 0.6484
Keven Talbert 10 7 9 11 9 14 13 9 9 11 10 10 12 10 10 12 NA 10 3 0.5000 18 0.6832 0.6472
Daniel Baller 14 6 9 8 7 9 10 12 10 10 10 10 15 10 12 11 12 9 3 0.5000 19 0.6727 0.6727
Noah Gosswiller 8 7 NA 10 8 NA 10 11 10 10 10 8 NA 9 14 14 NA NA 3 0.5000 14 0.6600 0.4863
Michael Moss 13 8 8 8 10 13 8 9 11 9 10 6 11 10 12 12 13 9 3 0.5000 19 0.6583 0.6583
Richard Beeghley 11 7 6 11 7 14 10 10 10 8 9 9 14 11 12 11 11 9 3 0.5000 19 0.6583 0.6583
Pamela Augustine 14 9 9 NA 7 11 9 NA 10 NA 10 9 14 9 10 10 NA 8 3 0.5000 15 0.6574 0.5190
Clevante Granville 9 11 NA NA 5 11 11 9 10 11 9 10 NA 8 13 9 11 NA 3 0.5000 15 0.6542 0.5165
Nicholas Nguyen 11 8 5 8 7 12 11 9 10 9 10 9 NA 9 16 11 12 NA 3 0.5000 17 0.6504 0.5819
Steward Hogans 10 7 10 NA NA NA NA 10 13 8 8 9 11 8 11 12 NA 12 3 0.5000 14 0.6502 0.4791
George Brown 14 7 8 7 6 11 10 12 9 12 11 8 12 11 10 7 12 10 3 0.5000 19 0.6475 0.6475
Brian Patterson 11 6 9 9 6 NA 9 13 NA 9 12 7 14 9 13 10 12 8 3 0.5000 17 0.6426 0.5750
Trevor Macgavin 12 7 10 8 8 8 9 7 10 7 11 10 16 9 12 12 11 8 3 0.5000 19 0.6403 0.6403
Walter Archambo 8 8 7 9 6 12 11 11 12 10 10 9 15 9 9 9 12 8 3 0.5000 19 0.6403 0.6403
Cheryl Brown 11 6 9 8 8 10 NA 9 8 10 11 9 14 10 10 12 NA 10 3 0.5000 17 0.6397 0.5724
Jonathan Smith 11 NA 4 10 7 NA 8 11 10 7 9 7 15 9 15 13 11 8 3 0.5000 17 0.6371 0.5700
Jared Kaanga 11 9 9 8 7 10 9 11 13 9 9 7 NA 11 11 10 NA 8 3 0.5000 17 0.6301 0.5638
Matthew Olguin 10 8 9 9 7 12 11 11 9 7 8 5 14 9 12 12 7 NA 3 0.5000 18 0.6221 0.5894
Marcus Evans 11 8 NA 8 7 10 7 9 10 6 11 8 12 8 13 9 11 10 3 0.5000 18 0.6145 0.5822
Jack Wheeler 9 6 5 10 8 NA 9 9 10 8 10 7 15 11 9 11 NA 10 3 0.5000 17 0.6048 0.5411
Richard Conkle 7 6 6 8 7 10 12 11 9 NA 8 NA NA 10 9 NA 12 8 3 0.5000 15 0.5753 0.4542
Robert Gelo 14 8 9 9 8 13 13 11 12 10 10 9 12 11 11 13 14 10 2 0.3333 19 0.7158 0.7158
Jason Jackson 12 7 5 6 5 12 9 11 10 10 12 9 NA 10 13 12 13 11 2 0.3333 18 0.6450 0.6111
Ronald Schmidt 10 10 5 9 6 8 12 10 NA 7 9 10 NA 8 13 11 15 NA 2 0.3333 16 0.6277 0.5286
Melissa Printup 8 9 9 6 10 10 10 10 7 10 9 8 13 7 13 11 11 8 2 0.3333 19 0.6151 0.6151
Diance Durand 9 9 12 7 8 10 9 11 11 7 9 8 12 NA 11 7 10 11 2 0.3333 18 0.6151 0.5827
Gabrieal Feiling 10 NA 5 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 2 0.3333 3 0.4474 0.0706
Clayton Grimes 14 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.8750 0.0461
Tanaysa Henderson NA NA NA NA NA 12 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.8571 0.0451
Matthew Blair NA NA NA NA NA 11 10 12 10 9 11 8 15 11 15 10 NA NA NA 0.0000 11 0.7531 0.4360
Wallace Savage 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0395
Brian Holder 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0395
Sandra Carter 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0395
Michael Linder 11 9 9 NA NA 12 10 11 10 NA 11 NA 13 NA 14 13 13 NA NA 0.0000 12 0.7312 0.4618
Steven Maisonneuve NA NA NA NA 11 10 11 12 11 8 NA 10 12 9 NA NA NA NA NA 0.0000 9 0.7231 0.3425
Patrick Tynan 12 8 7 9 8 12 NA 12 12 10 10 6 16 11 13 NA 12 12 NA 0.0000 16 0.7054 0.5940
Randolph Tidd 11 7 8 12 NA 12 11 12 13 9 11 7 16 10 11 12 NA 8 NA 0.0000 16 0.7025 0.5916
Jeremy Mounce 12 8 8 NA 10 12 NA NA NA 10 10 NA NA NA 14 NA NA NA NA 0.0000 8 0.7000 0.2947
Gregory Brown 15 7 6 9 8 12 9 9 13 9 10 9 15 12 13 12 NA NA NA 0.0000 16 0.7000 0.5895
Jeremy Krammes 12 NA NA NA NA NA NA 10 NA 10 NA NA NA NA NA NA NA NA NA 0.0000 3 0.6957 0.1098
Terrence Lee 11 NA NA NA NA NA NA NA NA NA NA 9 NA NA NA NA NA NA NA 0.0000 2 0.6897 0.0726
Daniel Gray 11 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.6875 0.0362
Thomas Brenstuhl 9 8 NA 6 7 9 10 13 11 9 13 9 15 11 14 NA 12 8 NA 0.0000 16 0.6833 0.5754
Karen Coleman 13 6 NA 11 9 9 10 9 11 8 9 9 14 10 14 11 NA NA NA 0.0000 15 0.6830 0.5392
Bryson Scott 10 9 7 NA 7 12 11 12 10 9 NA 9 15 10 10 NA 12 NA NA 0.0000 14 0.6810 0.5018
Jennifer Bouland 13 8 10 7 8 11 10 11 9 9 12 10 NA 11 11 NA 13 10 NA 0.0000 16 0.6792 0.5720
Ryan Wiggins NA NA NA NA NA NA NA NA 11 NA NA NA NA NA NA 10 NA NA NA 0.0000 2 0.6774 0.0713
Matthew Schultz 13 10 9 8 9 9 9 12 11 8 11 10 14 9 11 9 11 NA NA 0.0000 17 0.6758 0.6047
Robert Sokol 10 8 NA NA 6 9 9 13 12 9 10 8 14 10 NA NA NA NA NA 0.0000 12 0.6705 0.4235
Philip Driskill 12 7 8 10 8 NA 13 11 10 NA NA 9 14 10 NA NA NA 10 NA 0.0000 12 0.6703 0.4233
Darryle Sellers 11 11 6 8 9 11 9 10 12 9 12 7 15 9 NA 12 NA 9 NA 0.0000 16 0.6667 0.5614
George Mancini 11 8 6 NA 8 6 12 NA 11 9 11 10 13 11 NA 12 NA 10 NA 0.0000 14 0.6635 0.4889
Travis Delagardelle 11 12 10 8 6 11 12 11 11 9 9 NA NA NA NA NA NA NA NA 0.0000 11 0.6627 0.3837
Daniel Halse 12 6 8 10 7 13 9 11 11 11 NA 8 14 9 12 12 NA 7 NA 0.0000 16 0.6612 0.5568
Shaun Dahl 14 7 9 11 10 10 10 8 9 11 8 11 12 11 12 8 NA 8 NA 0.0000 17 0.6602 0.5907
Ryan Baum 14 4 9 10 9 NA 10 10 11 10 NA 8 14 8 NA 12 NA NA NA 0.0000 13 0.6582 0.4503
Jennifer Arty 10 7 9 7 7 12 8 12 11 9 10 8 15 9 13 10 NA NA NA 0.0000 16 0.6542 0.5509
Michelle Fraterrigo 11 8 9 9 7 11 12 12 11 8 8 10 NA 9 NA 11 NA NA NA 0.0000 14 0.6538 0.4817
George Hall 12 NA 8 NA NA NA NA NA NA 10 NA NA NA NA NA NA NA NA NA 0.0000 3 0.6522 0.1030
Michael Moore 11 6 7 7 8 12 NA 9 9 NA 12 9 16 10 13 11 NA 8 NA 0.0000 15 0.6520 0.5147
Nahir Shepard 11 8 10 8 6 12 8 12 9 9 11 10 13 9 NA 9 9 11 NA 0.0000 17 0.6445 0.5767
Joshua Tracey 12 5 8 6 7 NA 9 13 10 7 10 9 16 9 13 11 NA NA NA 0.0000 15 0.6416 0.5065
Thomas Mccoy 10 7 6 8 9 11 11 10 12 10 10 8 13 9 11 10 10 8 NA 0.0000 18 0.6360 0.6025
Paul Presti 12 8 9 12 7 11 8 10 NA 10 9 NA NA NA NA NA NA NA NA 0.0000 10 0.6358 0.3346
Amy Asberry 11 8 6 10 NA 12 9 NA 9 8 NA NA 13 9 11 NA NA NA NA 0.0000 11 0.6347 0.3675
Tara Bridgett 11 8 8 8 NA 9 NA 10 10 NA NA NA 15 NA NA NA NA NA NA 0.0000 8 0.6320 0.2661
Yiming Hu 12 NA 7 7 6 8 12 9 NA 9 12 8 11 NA 12 NA NA NA NA 0.0000 12 0.6278 0.3965
Jordan Forwood 11 8 6 11 NA 13 NA 10 NA NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.6277 0.1982
Kenneth Nielsen 13 8 7 NA 8 9 11 10 NA NA NA NA 11 NA NA 8 12 NA NA 0.0000 10 0.6258 0.3294
Kristen White 14 7 9 9 8 9 9 8 8 9 9 8 13 8 14 9 10 9 NA 0.0000 18 0.6250 0.5921
Anthony Rockemore 13 8 6 8 7 NA 8 NA NA 9 9 9 12 10 12 9 NA 11 NA 0.0000 14 0.6209 0.4575
Desmond Jenkins 10 7 7 NA 7 12 8 NA NA NA NA NA 15 NA NA NA NA NA NA 0.0000 7 0.6168 0.2272
Robert Lynch 6 9 8 6 9 7 7 12 NA 9 7 8 15 NA 13 13 11 10 NA 0.0000 16 0.6148 0.5177
Jose Torres Mendoza 12 8 8 8 NA NA 8 9 10 11 8 7 NA 10 NA 11 NA NA NA 0.0000 12 0.6111 0.3860
David Hadley 13 10 8 NA 8 NA 8 NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 5 0.6104 0.1606
Gary Lawrence 10 6 5 5 7 9 9 10 9 9 11 8 16 11 11 10 12 8 NA 0.0000 18 0.6103 0.5782
Keisha Vasquez 8 7 9 9 11 11 9 12 8 8 NA NA 14 NA NA 9 NA 7 NA 0.0000 13 0.6100 0.4174
Kyle May 10 8 5 6 8 NA 12 10 9 8 8 8 13 7 13 12 NA NA NA 0.0000 15 0.6062 0.4786
Wayne Gokey 13 7 NA 11 NA NA 8 NA 8 NA NA NA NA NA NA NA NA NA NA 0.0000 5 0.6026 0.1586
Jonathan Knight 13 10 9 6 7 NA 11 NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.6022 0.1902
Kevin Green 11 9 NA 8 7 12 NA 8 NA NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.5978 0.1888
Derrick Elam 13 9 8 11 7 10 8 9 NA NA NA 7 NA 7 NA NA NA NA NA 0.0000 10 0.5973 0.3144
Ryan Shipley 11 6 10 8 5 9 11 NA 10 NA 9 10 NA NA 10 9 NA 9 NA 0.0000 13 0.5939 0.4064
Jeffrey Dusza 11 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5938 0.0625
Cherylynn Vidal 13 9 8 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 4 0.5938 0.1250
Adam Konkle 10 9 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5938 0.0625
Thomas Cho 10 6 NA 11 7 12 NA 8 9 NA NA NA NA NA NA NA NA NA NA 0.0000 7 0.5888 0.2169
Jason Miranda 10 7 8 NA 9 11 8 NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.5824 0.1839
Jennifer Wilson 11 9 10 6 NA 7 11 NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.5806 0.1833
Sheryl Claiborne-Smith 11 7 NA NA NA 7 7 10 7 7 9 9 10 9 NA NA NA 8 NA 0.0000 12 0.5674 0.3584
Joseph Martin 10 7 8 8 8 10 9 NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 7 0.5607 0.2066
Min Choi 10 NA 7 NA 8 7 NA 10 NA NA NA NA NA NA NA NA NA NA NA 0.0000 5 0.5526 0.1454
Lawrence Thuotte 9 5 12 NA 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 4 0.5484 0.1155
Donald Park 9 NA 6 NA NA 10 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 3 0.5435 0.0858
Gabriel Quinones 10 7 6 9 NA 11 8 7 NA NA NA 6 NA 9 NA NA NA NA NA 0.0000 9 0.5407 0.2561
Monte Henderson 9 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5312 0.0559
David Kim 9 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5312 0.0559
Jamie Ainsleigh-Wong 9 8 9 9 8 5 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.5217 0.1647
Akilah Gamble 9 NA 12 9 6 8 12 6 NA 8 NA 7 NA NA 3 6 NA NA NA 0.0000 11 0.5181 0.3000
Andrew Gray 5 8 9 7 NA NA 7 9 7 11 8 6 5 10 9 NA 9 8 NA 0.0000 15 0.5175 0.4086
Jay Kelly 10 9 7 7 5 10 7 NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 7 0.5140 0.1894
Zachary Brosemer 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.5000 0.0263
Antonio Chapa 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.5000 0.0263
Vincent Kandian 9 8 8 7 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 4 0.5000 0.1053
Ashley Johnson 9 NA 6 NA 6 NA NA NA NA NA 5 9 8 NA NA NA NA NA NA 0.0000 6 0.4831 0.1526
Ashlyn Dortch 9 NA NA 8 NA 5 9 6 NA NA NA NA NA NA NA NA NA NA NA 0.0000 5 0.4805 0.1264
Jasprin Smith 6 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.3750 0.0197
Robert Epps NA 6 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.3750 0.0197

Season Leaderboard

Season Leaderboard (Season Percent)
Week 19
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Clayton Grimes 0 1 0.8750 0.0461
2 Tanaysa Henderson 0 1 0.8571 0.0451
3 Brittany Pillar 1 12 0.7633 0.4821
4 Matthew Blair 0 11 0.7531 0.4360
5 Brian Holder 0 1 0.7500 0.0395
5 Sandra Carter 0 1 0.7500 0.0395
5 Wallace Savage 0 1 0.7500 0.0395
8 Robert Cunningham 1 18 0.7366 0.6978
9 Michael Linder 0 12 0.7312 0.4618
10 Aubrey Conn 4 19 0.7302 0.7302
11 Steven Maisonneuve 1 9 0.7231 0.3425
12 Michael Pacifico 2 19 0.7230 0.7230
13 Robert Gelo 1 19 0.7158 0.7158
14 Nathan Brown 1 16 0.7155 0.6025
15 Chester Todd 1 18 0.7137 0.6761
16 Chris Papageorge 2 19 0.7086 0.7086
16 Marc Agne 2 19 0.7086 0.7086
18 Patrick Tynan 2 16 0.7054 0.5940
19 Randolph Tidd 1 16 0.7025 0.5916
20 Bradley Hobson 1 18 0.7008 0.6639
21 Gregory Brown 2 16 0.7000 0.5895
21 Jeremy Mounce 0 8 0.7000 0.2947
23 Jeremy Stieler 1 19 0.6978 0.6978
23 Randy Dick 1 19 0.6978 0.6978
25 Heather Kohler 0 11 0.6968 0.4034
26 Jeremy Krammes 0 3 0.6957 0.1098
27 Erik Neumann 1 16 0.6953 0.5855
28 Christopher Sims 2 19 0.6942 0.6942
29 Anthony Bloss 0 19 0.6906 0.6906
29 Jason Schattel 1 19 0.6906 0.6906
31 Terrence Lee 0 2 0.6897 0.0726
32 David Dupree 0 18 0.6894 0.6531
33 William Schouviller 1 18 0.6882 0.6520
34 Daniel Gray 0 1 0.6875 0.0362
35 Nicole Dike 1 19 0.6871 0.6871
36 Nicholas Cinco 0 17 0.6870 0.6147
37 Bruce Williams 0 18 0.6844 0.6484
38 Kevin Kehoe 0 19 0.6835 0.6835
39 Thomas Brenstuhl 1 16 0.6833 0.5754
40 Heather Ellenberger 0 18 0.6832 0.6472
40 Keven Talbert 2 18 0.6832 0.6472
42 Karen Coleman 0 15 0.6830 0.5392
43 Bryson Scott 0 14 0.6810 0.5018
44 Edward Ford 0 19 0.6799 0.6799
44 Pablo Burgosramos 1 19 0.6799 0.6799
46 Jennifer Bouland 0 16 0.6792 0.5720
47 Ryan Wiggins 0 2 0.6774 0.0713
48 Stephen Bush 2 19 0.6763 0.6763
49 Matthew Schultz 0 17 0.6758 0.6047
50 Kevin Buettner 1 18 0.6756 0.6400
51 Brian Hollmann 1 15 0.6729 0.5312
52 Daniel Baller 0 19 0.6727 0.6727
52 George Sweet 2 19 0.6727 0.6727
52 Ramar Williams 1 19 0.6727 0.6727
55 Shawn Carden 0 18 0.6718 0.6364
56 Rafael Torres 0 17 0.6707 0.6001
56 Scott Lefton 0 17 0.6707 0.6001
58 Robert Sokol 0 12 0.6705 0.4235
59 Philip Driskill 1 12 0.6703 0.4233
60 Zechariah Ziebarth 1 17 0.6694 0.5989
61 Brayant Rivera 0 19 0.6691 0.6691
61 Ryan Cvik 0 19 0.6691 0.6691
63 Darryle Sellers 0 16 0.6667 0.5614
64 Antonio Mitchell 1 19 0.6655 0.6655
65 Jonathon Leslein 1 18 0.6641 0.6291
66 Earl Dixon 0 16 0.6638 0.5590
67 David Plate 0 15 0.6636 0.5239
68 George Mancini 0 14 0.6635 0.4889
69 Travis Delagardelle 1 11 0.6627 0.3837
70 Daniel Halse 0 16 0.6612 0.5568
71 Darvin Graham 0 16 0.6609 0.5565
72 Shaun Dahl 1 17 0.6602 0.5907
73 Noah Gosswiller 1 14 0.6600 0.4863
74 Cade Martinez 0 19 0.6583 0.6583
74 Michael Moss 0 19 0.6583 0.6583
74 Richard Beeghley 1 19 0.6583 0.6583
77 Ryan Baum 0 13 0.6582 0.4503
78 Pamela Augustine 0 15 0.6574 0.5190
79 Karen Richardson 1 18 0.6565 0.6219
80 Paul Seitz 0 15 0.6558 0.5177
81 Montee Brown 1 19 0.6547 0.6547
82 Clevante Granville 0 15 0.6542 0.5165
82 Jennifer Arty 0 16 0.6542 0.5509
84 Michelle Fraterrigo 0 14 0.6538 0.4817
85 Jeffrey Rudderforth 0 18 0.6527 0.6183
85 Kamar Morgan 1 18 0.6527 0.6183
85 Michael Branson 0 18 0.6527 0.6183
88 George Hall 0 3 0.6522 0.1030
89 Michael Moore 1 15 0.6520 0.5147
90 Jeffrey Zornes 0 18 0.6515 0.6172
91 David Humes 0 19 0.6511 0.6511
92 Nicholas Nguyen 1 17 0.6504 0.5819
93 Steward Hogans 1 14 0.6502 0.4791
94 Daniel Major 0 16 0.6494 0.5469
95 Bunnaro Sun 0 16 0.6483 0.5459
96 Christopher Mulcahy 0 18 0.6477 0.6136
97 George Brown 1 19 0.6475 0.6475
98 Anthony Brinson 0 15 0.6468 0.5106
99 Brandon Parks 0 15 0.6465 0.5104
100 Vincent Scannelli 0 18 0.6453 0.6113
101 James Small 0 17 0.6452 0.5773
102 Jason Jackson 0 18 0.6450 0.6111
103 Nahir Shepard 0 17 0.6445 0.5767
104 Brian Patterson 0 17 0.6426 0.5750
105 Joshua Tracey 1 15 0.6416 0.5065
106 Louie Renew 1 18 0.6412 0.6075
107 Trevor Macgavin 1 19 0.6403 0.6403
107 Walter Archambo 0 19 0.6403 0.6403
109 Cheryl Brown 0 17 0.6397 0.5724
110 Jonathan Smith 0 17 0.6371 0.5700
111 Rachel Follo 1 19 0.6367 0.6367
112 Thomas Mccoy 0 18 0.6360 0.6025
113 Paul Presti 0 10 0.6358 0.3346
114 Amy Asberry 0 11 0.6347 0.3675
115 Wayne Schofield 1 18 0.6336 0.6003
116 Tara Bridgett 0 8 0.6320 0.2661
117 Jared Kaanga 0 17 0.6301 0.5638
118 Yiming Hu 0 12 0.6278 0.3965
119 Jordan Forwood 0 6 0.6277 0.1982
119 Ronald Schmidt 1 16 0.6277 0.5286
121 Kenneth Nielsen 0 10 0.6258 0.3294
122 Kristen White 0 18 0.6250 0.5921
123 Terry Hardison 0 17 0.6225 0.5570
124 Matthew Olguin 0 18 0.6221 0.5894
125 Anthony Rockemore 0 14 0.6209 0.4575
126 Robert Martin 2 16 0.6174 0.5199
127 Desmond Jenkins 0 7 0.6168 0.2272
128 Diance Durand 1 18 0.6151 0.5827
128 Melissa Printup 0 19 0.6151 0.6151
130 Robert Lynch 0 16 0.6148 0.5177
131 Marcus Evans 0 18 0.6145 0.5822
132 Jose Torres Mendoza 0 12 0.6111 0.3860
133 David Hadley 0 5 0.6104 0.1606
134 Gary Lawrence 1 18 0.6103 0.5782
135 Keisha Vasquez 1 13 0.6100 0.4174
136 Kyle May 0 15 0.6062 0.4786
137 Jack Wheeler 0 17 0.6048 0.5411
138 Megan Fitzgerald 0 11 0.6038 0.3496
139 Wayne Gokey 0 5 0.6026 0.1586
140 Jonathan Knight 0 6 0.6022 0.1902
141 Kevin Green 0 6 0.5978 0.1888
142 Derrick Elam 0 10 0.5973 0.3144
143 Ryan Shipley 0 13 0.5939 0.4064
144 Adam Konkle 0 2 0.5938 0.0625
144 Cherylynn Vidal 0 4 0.5938 0.1250
144 Jeffrey Dusza 0 2 0.5938 0.0625
147 Steven Webster 0 14 0.5900 0.4347
148 Thomas Cho 0 7 0.5888 0.2169
149 Jason Miranda 0 6 0.5824 0.1839
150 Jennifer Wilson 0 6 0.5806 0.1833
151 Richard Conkle 0 15 0.5753 0.4542
152 Sheryl Claiborne-Smith 0 12 0.5674 0.3584
153 Joseph Martin 0 7 0.5607 0.2066
154 Min Choi 0 5 0.5526 0.1454
155 Lawrence Thuotte 1 4 0.5484 0.1155
156 Donald Park 0 3 0.5435 0.0858
157 Gabriel Quinones 0 9 0.5407 0.2561
158 David Kim 0 2 0.5312 0.0559
158 Monte Henderson 0 2 0.5312 0.0559
160 Jamie Ainsleigh-Wong 0 6 0.5217 0.1647
161 Akilah Gamble 1 11 0.5181 0.3000
162 Andrew Gray 0 15 0.5175 0.4086
163 Jay Kelly 0 7 0.5140 0.1894
164 Antonio Chapa 0 1 0.5000 0.0263
164 Vincent Kandian 0 4 0.5000 0.1053
164 Zachary Brosemer 0 1 0.5000 0.0263
167 Ashley Johnson 0 6 0.4831 0.1526
168 Ashlyn Dortch 0 5 0.4805 0.1264
169 Gabrieal Feiling 0 3 0.4474 0.0706
170 Jasprin Smith 0 1 0.3750 0.0197
170 Robert Epps 0 1 0.3750 0.0197

Adjusted Season Leaderboard

Season Leaderboard (Adjusted Season Percent)
Week 19
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Aubrey Conn 4 19 0.7302 0.7302
2 Michael Pacifico 2 19 0.7230 0.7230
3 Robert Gelo 1 19 0.7158 0.7158
4 Chris Papageorge 2 19 0.7086 0.7086
4 Marc Agne 2 19 0.7086 0.7086
6 Jeremy Stieler 1 19 0.6978 0.6978
6 Randy Dick 1 19 0.6978 0.6978
6 Robert Cunningham 1 18 0.7366 0.6978
9 Christopher Sims 2 19 0.6942 0.6942
10 Anthony Bloss 0 19 0.6906 0.6906
10 Jason Schattel 1 19 0.6906 0.6906
12 Nicole Dike 1 19 0.6871 0.6871
13 Kevin Kehoe 0 19 0.6835 0.6835
14 Edward Ford 0 19 0.6799 0.6799
14 Pablo Burgosramos 1 19 0.6799 0.6799
16 Stephen Bush 2 19 0.6763 0.6763
17 Chester Todd 1 18 0.7137 0.6761
18 Daniel Baller 0 19 0.6727 0.6727
18 George Sweet 2 19 0.6727 0.6727
18 Ramar Williams 1 19 0.6727 0.6727
21 Brayant Rivera 0 19 0.6691 0.6691
21 Ryan Cvik 0 19 0.6691 0.6691
23 Antonio Mitchell 1 19 0.6655 0.6655
24 Bradley Hobson 1 18 0.7008 0.6639
25 Cade Martinez 0 19 0.6583 0.6583
25 Michael Moss 0 19 0.6583 0.6583
25 Richard Beeghley 1 19 0.6583 0.6583
28 Montee Brown 1 19 0.6547 0.6547
29 David Dupree 0 18 0.6894 0.6531
30 William Schouviller 1 18 0.6882 0.6520
31 David Humes 0 19 0.6511 0.6511
32 Bruce Williams 0 18 0.6844 0.6484
33 George Brown 1 19 0.6475 0.6475
34 Heather Ellenberger 0 18 0.6832 0.6472
34 Keven Talbert 2 18 0.6832 0.6472
36 Trevor Macgavin 1 19 0.6403 0.6403
36 Walter Archambo 0 19 0.6403 0.6403
38 Kevin Buettner 1 18 0.6756 0.6400
39 Rachel Follo 1 19 0.6367 0.6367
40 Shawn Carden 0 18 0.6718 0.6364
41 Jonathon Leslein 1 18 0.6641 0.6291
42 Karen Richardson 1 18 0.6565 0.6219
43 Jeffrey Rudderforth 0 18 0.6527 0.6183
43 Kamar Morgan 1 18 0.6527 0.6183
43 Michael Branson 0 18 0.6527 0.6183
46 Jeffrey Zornes 0 18 0.6515 0.6172
47 Melissa Printup 0 19 0.6151 0.6151
48 Nicholas Cinco 0 17 0.6870 0.6147
49 Christopher Mulcahy 0 18 0.6477 0.6136
50 Vincent Scannelli 0 18 0.6453 0.6113
51 Jason Jackson 0 18 0.6450 0.6111
52 Louie Renew 1 18 0.6412 0.6075
53 Matthew Schultz 0 17 0.6758 0.6047
54 Nathan Brown 1 16 0.7155 0.6025
54 Thomas Mccoy 0 18 0.6360 0.6025
56 Wayne Schofield 1 18 0.6336 0.6003
57 Rafael Torres 0 17 0.6707 0.6001
57 Scott Lefton 0 17 0.6707 0.6001
59 Zechariah Ziebarth 1 17 0.6694 0.5989
60 Patrick Tynan 2 16 0.7054 0.5940
61 Kristen White 0 18 0.6250 0.5921
62 Randolph Tidd 1 16 0.7025 0.5916
63 Shaun Dahl 1 17 0.6602 0.5907
64 Gregory Brown 2 16 0.7000 0.5895
65 Matthew Olguin 0 18 0.6221 0.5894
66 Erik Neumann 1 16 0.6953 0.5855
67 Diance Durand 1 18 0.6151 0.5827
68 Marcus Evans 0 18 0.6145 0.5822
69 Nicholas Nguyen 1 17 0.6504 0.5819
70 Gary Lawrence 1 18 0.6103 0.5782
71 James Small 0 17 0.6452 0.5773
72 Nahir Shepard 0 17 0.6445 0.5767
73 Thomas Brenstuhl 1 16 0.6833 0.5754
74 Brian Patterson 0 17 0.6426 0.5750
75 Cheryl Brown 0 17 0.6397 0.5724
76 Jennifer Bouland 0 16 0.6792 0.5720
77 Jonathan Smith 0 17 0.6371 0.5700
78 Jared Kaanga 0 17 0.6301 0.5638
79 Darryle Sellers 0 16 0.6667 0.5614
80 Earl Dixon 0 16 0.6638 0.5590
81 Terry Hardison 0 17 0.6225 0.5570
82 Daniel Halse 0 16 0.6612 0.5568
83 Darvin Graham 0 16 0.6609 0.5565
84 Jennifer Arty 0 16 0.6542 0.5509
85 Daniel Major 0 16 0.6494 0.5469
86 Bunnaro Sun 0 16 0.6483 0.5459
87 Jack Wheeler 0 17 0.6048 0.5411
88 Karen Coleman 0 15 0.6830 0.5392
89 Brian Hollmann 1 15 0.6729 0.5312
90 Ronald Schmidt 1 16 0.6277 0.5286
91 David Plate 0 15 0.6636 0.5239
92 Robert Martin 2 16 0.6174 0.5199
93 Pamela Augustine 0 15 0.6574 0.5190
94 Paul Seitz 0 15 0.6558 0.5177
94 Robert Lynch 0 16 0.6148 0.5177
96 Clevante Granville 0 15 0.6542 0.5165
97 Michael Moore 1 15 0.6520 0.5147
98 Anthony Brinson 0 15 0.6468 0.5106
99 Brandon Parks 0 15 0.6465 0.5104
100 Joshua Tracey 1 15 0.6416 0.5065
101 Bryson Scott 0 14 0.6810 0.5018
102 George Mancini 0 14 0.6635 0.4889
103 Noah Gosswiller 1 14 0.6600 0.4863
104 Brittany Pillar 1 12 0.7633 0.4821
105 Michelle Fraterrigo 0 14 0.6538 0.4817
106 Steward Hogans 1 14 0.6502 0.4791
107 Kyle May 0 15 0.6062 0.4786
108 Michael Linder 0 12 0.7312 0.4618
109 Anthony Rockemore 0 14 0.6209 0.4575
110 Richard Conkle 0 15 0.5753 0.4542
111 Ryan Baum 0 13 0.6582 0.4503
112 Matthew Blair 0 11 0.7531 0.4360
113 Steven Webster 0 14 0.5900 0.4347
114 Robert Sokol 0 12 0.6705 0.4235
115 Philip Driskill 1 12 0.6703 0.4233
116 Keisha Vasquez 1 13 0.6100 0.4174
117 Andrew Gray 0 15 0.5175 0.4086
118 Ryan Shipley 0 13 0.5939 0.4064
119 Heather Kohler 0 11 0.6968 0.4034
120 Yiming Hu 0 12 0.6278 0.3965
121 Jose Torres Mendoza 0 12 0.6111 0.3860
122 Travis Delagardelle 1 11 0.6627 0.3837
123 Amy Asberry 0 11 0.6347 0.3675
124 Sheryl Claiborne-Smith 0 12 0.5674 0.3584
125 Megan Fitzgerald 0 11 0.6038 0.3496
126 Steven Maisonneuve 1 9 0.7231 0.3425
127 Paul Presti 0 10 0.6358 0.3346
128 Kenneth Nielsen 0 10 0.6258 0.3294
129 Derrick Elam 0 10 0.5973 0.3144
130 Akilah Gamble 1 11 0.5181 0.3000
131 Jeremy Mounce 0 8 0.7000 0.2947
132 Tara Bridgett 0 8 0.6320 0.2661
133 Gabriel Quinones 0 9 0.5407 0.2561
134 Desmond Jenkins 0 7 0.6168 0.2272
135 Thomas Cho 0 7 0.5888 0.2169
136 Joseph Martin 0 7 0.5607 0.2066
137 Jordan Forwood 0 6 0.6277 0.1982
138 Jonathan Knight 0 6 0.6022 0.1902
139 Jay Kelly 0 7 0.5140 0.1894
140 Kevin Green 0 6 0.5978 0.1888
141 Jason Miranda 0 6 0.5824 0.1839
142 Jennifer Wilson 0 6 0.5806 0.1833
143 Jamie Ainsleigh-Wong 0 6 0.5217 0.1647
144 David Hadley 0 5 0.6104 0.1606
145 Wayne Gokey 0 5 0.6026 0.1586
146 Ashley Johnson 0 6 0.4831 0.1526
147 Min Choi 0 5 0.5526 0.1454
148 Ashlyn Dortch 0 5 0.4805 0.1264
149 Cherylynn Vidal 0 4 0.5938 0.1250
150 Lawrence Thuotte 1 4 0.5484 0.1155
151 Jeremy Krammes 0 3 0.6957 0.1098
152 Vincent Kandian 0 4 0.5000 0.1053
153 George Hall 0 3 0.6522 0.1030
154 Donald Park 0 3 0.5435 0.0858
155 Terrence Lee 0 2 0.6897 0.0726
156 Ryan Wiggins 0 2 0.6774 0.0713
157 Gabrieal Feiling 0 3 0.4474 0.0706
158 Adam Konkle 0 2 0.5938 0.0625
158 Jeffrey Dusza 0 2 0.5938 0.0625
160 David Kim 0 2 0.5312 0.0559
160 Monte Henderson 0 2 0.5312 0.0559
162 Clayton Grimes 0 1 0.8750 0.0461
163 Tanaysa Henderson 0 1 0.8571 0.0451
164 Brian Holder 0 1 0.7500 0.0395
164 Sandra Carter 0 1 0.7500 0.0395
164 Wallace Savage 0 1 0.7500 0.0395
167 Daniel Gray 0 1 0.6875 0.0362
168 Antonio Chapa 0 1 0.5000 0.0263
168 Zachary Brosemer 0 1 0.5000 0.0263
170 Jasprin Smith 0 1 0.3750 0.0197
170 Robert Epps 0 1 0.3750 0.0197

Data

---
title: "2024 NFL Moneyline Picks"
output: 
  flexdashboard::flex_dashboard:
    theme:
      version: 4
      bootswatch: spacelab
    orientation: rows
    vertical_layout: fill
    social: ["menu"]
    source_code: embed
    navbar:
      - { title: "Created by: Daniel Baller", icon: "fa-github", href: "https://github.com/danielpballer"  }
---


```{r setup, include=FALSE}
#    source_code: embed
library(flexdashboard)
library(tidyverse)
library(data.table)
library(formattable)
library(ggpubr)
library(ggrepel)
library(gt)
library(glue)
library(ggthemes)
library(hrbrthemes)
library(sparkline)
library(plotly)
library(htmlwidgets)
library(mdthemes)
library(ggtext)
library(ggnewscale)
library(DT)
source("./Functions/functions2.R")

thematic::thematic_rmd(font = "auto")

```

```{r Reading in our picks files, include=FALSE}
current_week = 19 #Set what week it is
week_1 = read_csv("./CSV_Data_Files/2024 NFL Week 1.csv") %>% 
  mutate(Name = str_to_title(Name))
week_2 = read_csv("./CSV_Data_Files/2024 NFL Week 2.csv")%>% 
  mutate(Name = str_to_title(Name))
week_3 = read_csv("./CSV_Data_Files/2024 NFL Week 3.csv")%>% 
  mutate(Name = str_to_title(Name))
week_4 = read_csv("./CSV_Data_Files/2024 NFL Week 4.csv")%>%
 mutate(Name = str_to_title(Name))
week_5 = read_csv("./CSV_Data_Files/2024 NFL Week 5.csv")%>% 
  mutate(Name = str_to_title(Name))
week_6 = read_csv("./CSV_Data_Files/2024 NFL Week 6.csv")%>% 
  mutate(Name = str_to_title(Name))
week_7 = read_csv("./CSV_Data_Files/2024 NFL Week 7.csv")%>% 
  mutate(Name = str_to_title(Name))
week_8 = read_csv("./CSV_Data_Files/2024 NFL Week 8.csv")%>% 
  mutate(Name = str_to_title(Name))
 week_9 = read_csv("./CSV_Data_Files/2024 NFL Week 9.csv")%>% 
  mutate(Name = str_to_title(Name))
week_10 = read_csv("./CSV_Data_Files/2024 NFL Week 10.csv")%>% 
  mutate(Name = str_to_title(Name))
week_11 = read_csv("./CSV_Data_Files/2024 NFL Week 11.csv")%>% 
  mutate(Name = str_to_title(Name))
week_12 = read_csv("./CSV_Data_Files/2024 NFL Week 12.csv")%>% 
  mutate(Name = str_to_title(Name))
week_13 = read_csv("./CSV_Data_Files/2024 NFL Week 13.csv")%>% 
  mutate(Name = str_to_title(Name))
week_14 = read_csv("./CSV_Data_Files/2024 NFL Week 14.csv")%>% 
  mutate(Name = str_to_title(Name))
week_15 = read_csv("./CSV_Data_Files/2024 NFL Week 15.csv")%>% 
  mutate(Name = str_to_title(Name))
week_16 = read_csv("./CSV_Data_Files/2024 NFL Week 16.csv")%>% 
  mutate(Name = str_to_title(Name))
week_17 = read_csv("./CSV_Data_Files/2024 NFL Week 17.csv")%>% 
  mutate(Name = str_to_title(Name))
week_18 = read_csv("./CSV_Data_Files/2024 NFL Week 18.csv")%>% 
  mutate(Name = str_to_title(Name))
week_19 = read_csv("./CSV_Data_Files/2024 NFL Wild Card.csv")%>% 
  mutate(Name = str_to_title(Name))
# week_20 = read_csv("./CSV_Data_Files/2024 NFL Divisional Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_21 = read_csv("./CSV_Data_Files/2024 NFL Conference Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_22 = read_csv("./CSV_Data_Files/2024 NFL Super Bowl.csv")%>% 
#  mutate(Name = str_to_title(Name))

#reading in scores
Scores = read_csv(glue::glue("./CSV_Data_Files/NFL_Scores_{current_week}.csv")) 

#reading in CBS Prediction Records
cbs = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_{current_week}.csv")) %>% 
  mutate(Percent = round(Percent,4))
cbs_season = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_Season_{current_week}.csv"))

#reading in ESPN Prediction Records
espn = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))
espn_season = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_Season_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))

#Odds not working for the 2024 season.  Need to fix scrape code for next year.
#Reading in the moneyline odds for each team and cleaning the team names
# odds_wk1 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_1.csv"))
# odds_wk2 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_2.csv"))
# odds_wk3 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_3.csv"))
# odds_wk4 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_4.csv"))
# odds_wk5 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_5.csv"))
# odds_wk6 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_6.csv"))
# odds_wk7 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_7.csv"))
# odds_wk8 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_8.csv"))
# odds_wk9 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_9.csv"))
# odds_wk10 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_10.csv"))
# odds_wk11 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_11.csv"))
# odds_wk12 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_12.csv"))
# odds_wk13 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_13.csv"))
# odds_wk14 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_14.csv"))
# odds_wk15 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_15.csv"))
# odds_wk16 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_16.csv"))
# odds_wk17 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_17.csv"))
# odds_wk18 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_18.csv"))
# odds_wk19 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_19.csv"))
# odds_wk20 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_20.csv"))
# odds_wk21 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_21.csv"))
# odds_wk22 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_22.csv"))

####################UPDATE THESE###############################
inst.picks = list(week_1, week_2, week_3, week_4, week_5, week_6, week_7, week_8 , week_9, week_10, week_11, week_12, week_13, week_14, week_15, week_16, week_17, week_18, week_19) # , week_20, week_21, week_22) #add in the additional weeks
# odds = rbind(odds_wk1, odds_wk2, odds_wk3, odds_wk4, odds_wk5, odds_wk6, odds_wk7, odds_wk8,
#              odds_wk9, odds_wk10, odds_wk11, odds_wk12) #add in the additional weeks
####################END OF UPDATE##############################

weeks = as.list(seq(1:current_week)) #creating a list of each week number
```

```{r read in scores clean data, include=FALSE}
#Cleaning Odds Data
# cl_odds = odds_cleaning(odds)

#Cleaning scores data
Scores = cleaning2(Scores)

#creating a list of winners for each week
winners = map(weeks, weekly_winners)

#creating a vector of this weeks winners
this_week = pull(winners[[length(winners)]])  

#Getting the number of games for each week
weekly_number_of_games = map_dbl(weeks, week_number_games)
```

```{r Group Predictions, include=FALSE}
#Creating the list of everyones predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Adding who won to the predictions
with_winners = map2(pred_table, winners, adding_winners)

#Creating results for each week.
results = map2(with_winners,weekly_number_of_games, results_fn)
```


```{r Displaying Group Results, echo=FALSE}
#Displaying the group results

inst_group_table = results[[length(results)]] %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    #subtitle = md(glue("Week {length(results)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="No"
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="Yes"
    )) %>% 
  tab_options(
    data_row.padding = px(3),
    container.height = "100%"
   )
```

```{r Weekly and season Group Results, include=FALSE}
# Printing the weekly and season win percentage     

#how many games correct, incorrect, and not picked each week
weekly_group_correct = map(results, weekly_group_correct_fn)  

#how many games were picked each week
weekly_games_picked = map2(weekly_group_correct, weekly_number_of_games, weekly_games_picked_fn)

#Calculating the number of correct picks for each week
weekly_group_correct_picks = map(weekly_group_correct, weekly_group_correct_picks_fn)

# Code to manually hard code in week where we get 0 games correct
# ##### Remove this line before next season 
# weekly_group_correct_picks[[21]]=0

#Calculating weekly win percentage
weekly_win_percentage = map2(weekly_group_correct_picks, weekly_games_picked, weekly_win_percentage_fn)

#Calculating season win percentage
season_win_percentage = round(sum(unlist(weekly_group_correct_picks))/sum(unlist(weekly_games_picked)),4)

#Calculating number of games picked this season
season_games = sum(unlist(weekly_games_picked))

#calculating season wins
season_wins = sum(unlist(weekly_group_correct_picks))

#calculating the number of people who picked this week
Total = dim(inst.picks[[length(weeks)]])[1]
```

```{r plotting group results, include=FALSE}
#Previous Weeks
group_season_for_plotting = unlist(weekly_win_percentage) %>% as.data.frame() %>% 
  rename(`Win Percentage` = ".") %>% 
  add_column(Week = unlist(weeks))
```

```{r Plotting the group results, echo=FALSE}
inst_group_season_plot = group_season_for_plotting %>% 
ggplot(aes(x = as.factor(Week), y = `Win Percentage`))+
  geom_point()+
  geom_path(aes(x = Week))+
  ylim(c(0, 1)) +
  xlab("NFL Week") + 
  ylab("Correct Percentage")+
  ggtitle("Weekly Group Correct Percentage")+
  theme_classic()+
  theme(plot.title = element_text(hjust = 0.5, size = 18))
```

```{r beating cbs week, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_weekly_percent = map(weeks, cbs_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat = map2(cbs_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_total = map(cbs_weekly_percent, experts_tot)
```

```{r beating cbs season, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_season_percent = map(weeks, cbs_season_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat_season = map2(cbs_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_season_total = map(cbs_season_percent, experts_tot)
```

```{r beating ESPN week, include=FALSE}
#Creating a list of correct percentages for each week.
espn_weekly_percent = map(weeks, espn_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat = map2(espn_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_total = map(espn_weekly_percent, experts_tot)
```

```{r beating ESPN season, include=FALSE}
#Creating a list of correct percentages for each week.
espn_season_percent = map(weeks, espn_season_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat_season = map2(espn_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_season_total = map(espn_season_percent, experts_tot)
```

```{r individual results, include=FALSE}
#Creating a list of individual results for each week.
weekly_indiv = pmap(list(inst.picks, winners, weeks), indiv_weekly_pred)

#Combining each week into one dataframe and calculating percentage Correct for this week.  
full_season = weekly_indiv %>% reduce(full_join, by = "Name") %>% 
  mutate(Percent = round(pull(.[,ncol(.)]/weekly_number_of_games[[length(weekly_number_of_games)]]),4)) 

#Creating a dataframe with only the weekly picks
a = full_season %>% select(starts_with("Week"))

#Creating a vector of how many weeks each person picked over the season
tot_week = NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = ifelse(is.na(a[i,j])==T,0,1)
    tot_week[i] = sum(help)
  }
}

#Creating a vector of how many games each person picked over the season
tot_picks= NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = unlist(weekly_games_picked)[j]*ifelse(is.na(a[i,j])==T,0,1)
    tot_picks[i] = sum(help)
  }
}

#Creatign a vector of how many games each person picked correct over the season
tot_correct = NULL
help = NULL
for (i in 1:dim(a)[1]){
  tot_correct[i] = sum(a[i,], na.rm = T)
}

#adding how many weeks each person picked, season correct percentage, and adjusted season percentag to the data frame and sorting the data
indiv_disp = full_season %>% add_column(`Weeks Picked` = tot_week) %>%
  add_column(tot_correct)%>%
  add_column(tot_picks)%>%
  mutate(`Season Percent` = round(tot_correct/tot_picks,4))%>%
  mutate(`Adj Season Percent` = round(`Season Percent`*(tot_week/length(a)),4)) %>%
  select(-tot_correct, -tot_picks) %>%
  arrange(desc(Percent), desc(`Season Percent`)) %>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent))
```


```{r individual percentages, include=FALSE}
#Calculating individual percentages for each week.
weekly_indiv_percent = map2(weekly_indiv, as.list(weekly_number_of_games), indiv_percent) %>% reduce(full_join, by = "Name")

weekly_indiv_percent_plot = weekly_indiv_percent %>% 
  pivot_longer(cols = starts_with("Week"), names_to = "Week", values_to = "Percent")%>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent)) %>% 
  mutate(Week = as.factor(Week))

levels = NULL
for(i in 1:length(weeks)){
  levels[i] = glue("Week {i}")  
}

weekly_indiv_percent_plot = weekly_indiv_percent_plot %>%
  mutate(Week = factor(Week, levels))
```

```{r sparklines, include=FALSE}
#adding sparklines
plot_group = function(name, df){
  plot_object = 
    ggplot(data = df,
           aes(x = as.factor(Week), y=Percent, group = 1))+
    geom_path(size = 7)+
    scale_y_continuous(limits = c(0,1))+
    theme_void()+
    theme(legend.position = "none")
  return(plot_object)
}

sparklines = 
  weekly_indiv_percent_plot %>% 
  group_by(Name) %>% 
  nest() %>% 
  mutate(plot = map2(Name, data, plot_group)) %>% 
  select(-data)
  
indiv_disp_2 = indiv_disp %>% 
  inner_join(sparklines, by = "Name") %>% 
  mutate(`Season Trend` = NA)
```

```{r Printing Individual Table2, echo=FALSE}
# Printing the individual Table
indiv_table = indiv_disp_2 %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Individual Results"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent>.5
    )) %>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(indiv_disp_2$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(c(plot))

indiv_winners = indiv_disp_2 %>% filter(Percent == max(Percent)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season = indiv_disp_2 %>% filter(`Season Percent` == max(`Season Percent`)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season_adj = indiv_disp_2 %>% filter(`Adj Season Percent` == max(`Adj Season Percent`)) %>% select(Name) %>% pull()%>% paste(collapse = ", ")
```

```{r Printing Season Leaderboard, echo=FALSE}
# Printing the Season Leaderboard
  
season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`) 
  
season_leaderboard = season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```

```{r Printing Adj Season Leaderboard, echo=FALSE}
# Printing the Adj Season Leaderboard
  
adj_season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Adj Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`)

adj_season_leaderboard = adj_season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Adjusted Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(adj_season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```


```{r instructor formattable, echo=FALSE}
improvement_formatter <- 
  formatter("span", 
            style = x ~ formattable::style(
              font.weight = "bold", 
              color = ifelse(x > .5, "green", ifelse(x < .5, "red", "black"))),
             x ~ icontext(ifelse(x == max(x), "star", ""), x))

indiv_disp_3 = indiv_disp_2 %>% select(-plot)
indiv_disp_3$`Season Trend` = apply(indiv_disp_3[,2:(1+length(weeks))], 1, FUN = function(x) as.character(htmltools::as.tags(sparkline(as.numeric(x), type = "line", chartRangeMin = 0, chartRangeMax = 1, fillColor = "white"))))

indiv_table_2 = as.htmlwidget(formattable(indiv_disp_3, 
                                align = c("l", rep("c", NROW(indiv_disp_3)-1)),
              list(`Season Percent` = color_bar("#FA614B"),
              `Season Percent`= improvement_formatter,
              `Adj Season Percent`= improvement_formatter)))
              
indiv_table_2$dependencies = c(indiv_table_2$dependencies, htmlwidgets:::widget_dependencies("sparkline", "sparkline"))
```

```{r Plotting individual results over the season2, eval=FALSE, include=FALSE, out.width="100%"}
#Creating the individual plot.  
inst_indiv_plots = weekly_indiv_percent_plot %>% 
  ggplot(aes(x = factor(Week), y = Percent, color = Name))+
  geom_point()+
  geom_path(aes(x = as.factor(Week), y = Percent, color = Name, 
                group = Name))+
  ylim(c(0, 1)) +
  labs(x = "NFL Week", 
       y = "Correct Percentage", 
       title = "Weekly Individual Correct Percentage")+
  facet_wrap(~Name)+
  theme_classic()+
  theme(legend.position = "none",
        plot.title = element_text(hjust = 0.5, size = 18),
        axis.text.x=element_text(angle =45, vjust = 1, hjust = 1))
```

```{r data for data page}
inst.data = map2(inst.picks, weeks, disp_data) %>% bind_rows()
```


```{r fivethirtyeight}
inst_538 = map(results, five38) %>% unlist() %>% sum()
```

```{r pregame, eval=FALSE, include=FALSE}
#Predictions for the week

#Creating the list of group predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Printing table of instructor predictions
pred_table[[length(pred_table)]] %>% mutate(Game = row_number()) %>% 
  rename(`Votes For` = votes_for, `Votes Against` = votes_against) %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_options(
    data_row.padding = px(3)
   )
```

Group Predictions
==========================================================================

Sidebar {.sidebar} 
-------------------------------------
#### CBS Sports

<font size="4">

This week we beat or tied `r cbs_experts_beat[[length(weeks)]]` of `r cbs_experts_total[[length(weeks)]]` CBS Sports' Experts.

For the season we are currently beating or tied with `r cbs_experts_beat_season[[length(weeks)]]` of `r cbs_experts_season_total[[length(weeks)]]` CBS Sports' Experts.
 
 </font>


#### ESPN

<font size="4">

We also beat or tied `r espn_experts_beat[[length(weeks)]]` of `r espn_experts_total[[length(weeks)]]` ESPN Experts.
 
For the season we are currently beating or tied with `r espn_experts_beat_season[[length(weeks)]]` of `r espn_experts_season_total[[length(weeks)]]` ESPN Experts.

</font>

Row
--------------------------------------

### Win percentage for the week

```{r}
inst_rate <- weekly_win_percentage[[length(weekly_win_percentage)]]*100
gauge(inst_rate, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Season Win Percentage

```{r}
inst_season <- season_win_percentage*100
gauge(inst_season, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Games Correct
```{r}
valueBox(value = season_wins,icon = "fa-trophy",caption = "Correct Games this Season")
```

### Games Picked
```{r}
valueBox(value = season_games,icon = "fa-clipboard-list",caption = "Games Picked this Season")
```

### Number of predictions
```{r}
valueBox(value = Total,icon = "fa-users",caption = "Predictions this week")
```

Row
--------------------------------------

### 

```{r}
inst_group_table
```

### 

```{r}
ggplotly(inst_group_season_plot) %>% 
  layout(title = list(y = .93, xref = "plot"),
         margin = list(t = 40))
```

Individual Predictions
==========================================================================


Sidebar {.sidebar} 
-------------------------------------

#### Best Picks of the Week.

<font size="4">

 `r indiv_winners`
 
 </font>
 
#### Best Season Correct Percentage
<font size="4">

`r indiv_season`
 
 </font>

#### Best Adjusted Season Correct Percentage
<font size="4">

`r indiv_season_adj`

 * Adjusted season percentage accounts for the number of weeks picked.
 
 </font>

row {.tabset}
--------------------------------------

### Individual Table
```{r}
indiv_table
```

<!--
### Individual Table2

```{r, out.height="100%"}
indiv_table_2
```

-->

<!--

### Individual Plots
```{r, out.width="100%"}
#ggplotly(inst_indiv_plots)
```

-->

### Season Leaderboard
```{r, out.width="100%"}
season_leaderboard
```

### Adjusted Season Leaderboard
```{r, out.width="100%"}
adj_season_leaderboard
```

Data
==========================================================================

```{r}
datatable(
  inst.data, extensions = 'Buttons', options = list(
    dom = 'Blfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
    lengthMenue = list( c(10, 25, 50, 100, -1), c(10, 25, 50, 100, "All") )
  )
)
```